package cn.stylefeng.guns.modular.gridsystem.model.param;

import cn.stylefeng.guns.core.pojo.base.param.BaseParam;
import cn.stylefeng.guns.modular.gridsystem.entity.BizGatewayChannel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;

/**
 * 采集设备
 *
 * @author ssy
 * @date 2021/09/14 11:47
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class BizGatewayParam extends BaseParam {

    /**
     * id
     */
    @NotNull(message = "id不能为空", groups = {edit.class, delete.class})
    private Integer id;

    /**
     * 站点id
     */
    @NotNull(message = "站点id不能为空", groups = {add.class, edit.class, batChangeStatus.class})
    private Integer stationId;

    /**
     * 网关编号
     */
    @NotNull(message = "网关编号不能为空", groups = {add.class, edit.class})
    private String gatewayCode;

    /**
     * 场景主键
     */
    @NotNull(message = "场景主键不能为空", groups = {add.class})
    private Long sceneId;

    private String gatewayIp;

    /**
     * 网关创建日期
     */
    private String createdAt;

    /**
     * 网关更新日期
     */
    private String updatedAt;

    /**
     * 网关状态(开启，禁用）
     */
    private Integer status;

    /**
     * 网关运行状态(0 离线 1在线）
     */
    private Integer onlineStatus;

    private BizGatewayChannel bizGatewayChannel;

    private String typeCode;

    /**
     * 网关上报数据开关（0：关 1：开）
     */
    @NotNull(message = "网关上报数据开关不能为空", groups = {batChangeStatus.class})
    private Integer dataReportingSwitch;

    /**
     * 网关配置编码
     */
    private String gatewayConfigCode;

    /**
     * 网关名称
     */
    private String gatewayName;

    /**
     * 通道数量
     */
    private Integer channelNumber;

    /**
     * 通道类型：传感器类型
     */
    private Integer channelType;

    /**
     * 通道阀值
     */
    private String channelThreshold;

    /**
     * 声卡主键
     */
    private Long soundCardId;

    /**
     * 授权状态：0-未授权，1-已授权
     */
    private String grantStatus;

    /**
     * 数据上报批量操作接口分组
     */
    public @interface batChangeStatus {
    }

}
